/* 
 * File:   PhotonEmitter.h
 * Author: neuma173
 *
 * Created on November 29, 2011, 11:34 AM
 */

#ifndef _PHOTONEMITTER_H
#define	_PHOTONEMITTER_H
#include "Photon.h"
#include <acceleration/IntersectionStructure.h>
#include <dto/RenderParams.h>
#include <core/util.h>
#include <core/Camera.h>


using namespace std;
class PhotonEmitter {
public:
    PhotonEmitter(const Vector3D& origin, double photonSize, Vector3D& photonColor, int photonDensity);
    vector<Ray> generatePhotonRays();
    void castPhotons(vector<Ray>& paths, IntersectionStructure& is);

    virtual ~PhotonEmitter();
private:
    Vector3D photonColor;
    int photonDensity;
    double photonSize;
    double sectorSize;
    int sectorCount;
    Vector3D origin;
};

#endif	/* _PHOTONEMITTER_H */

